package com.schoolhelper.social.domain;

import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.relational.core.mapping.Table;
import java.util.Date;

@Data
@Table("messages")
public class Message {
    @Id
    private Long id;
    private Long senderId;      // 发送者ID
    private Long receiverId;    // 接收者ID
    private String content;     // 消息内容
    private Integer messageType; // 消息类型：0-文本，1-图片，2-文件
    private String fileUrl;     // 文件URL（图片或文件消息时使用）
    private String fileName;    // 文件名（文件消息时使用）
    private Integer status;     // 消息状态：0-未读，1-已读，2-已删除
    private Date createTime;    // 创建时间
    private Date updateTime;    // 更新时间
    private Date readTime;      // 阅读时间
    
    // 关联查询字段
    private String senderName;       // 发送者用户名
    private String senderAvatar;     // 发送者头像
    private String receiverName;     // 接收者用户名
    private String receiverAvatar;   // 接收者头像
    private String senderUsername;   // 发送者用户名（mapper映射字段）
    private String receiverUsername; // 接收者用户名（mapper映射字段）
    
    // 消息类型常量
    public static final int TYPE_TEXT = 0;     // 文本消息
    public static final int TYPE_IMAGE = 1;    // 图片消息
    public static final int TYPE_FILE = 2;     // 文件消息
    
    // 消息状态常量
    public static final int STATUS_UNREAD = 0;   // 未读
    public static final int STATUS_READ = 1;     // 已读
    public static final int STATUS_DELETED = 2;  // 已删除
}